package com.lynn.common.utils;

import com.orhanobut.logger.AndroidLogAdapter;
import com.orhanobut.logger.Logger;

/**
 * @description: 引入com.orhanobut.logger
 * 弥补了 logcat信息打印字符长度限制的缺陷, 信息长度过长被截断
 * 打印信息详细丰富：
 * 打印属于那个线程、那个类、哪一行，
 * 打印json、xml、map、list等很多类型，
 * 而且打印跟使用一些工具效果接近，一目了然
 * @author: Lynn
 * @datetime: 2025/6/9 09:44
 **/
public class LoggerUtil {

    /**
     * Application 中初始化设置
     * 如果需要保存日志到文件中，适配器改为DiskLogAdapter
     * 修改默认配置：（一般默认的配置就可以了）
     * <p>
     * FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
     * .showThreadInfo(false)      //（可选）是否显示线程信息。 默认值为true
     * .methodCount(2)               // （可选）要显示的方法行数。 默认2
     * .methodOffset(7)               // （可选）设置调用堆栈的函数偏移值，0的话则从打印该Log的函数开始输出堆栈信息，默认是0
     * .logStrategy(customLog)  //（可选）更改要打印的日志策略。 默认LogCat
     * .tag("MyTAG")                  //（可选）每个日志的全局标记。 默认PRETTY_LOGGER（如上图）
     * .build();
     * <p>
     * Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
     */
    public static void init(boolean isDebug) {
//        FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
//                .build();
        Logger.addLogAdapter(new AndroidLogAdapter() {
            @Override
            public boolean isLoggable(int priority, String tag) {
                return isDebug;
            }
        });
    }

}
